import { face_networkParam } from '../network/type';

// ================================================================== 方法所用到的接口
/** 结构示例 - 返回的系统信息对象 */
interface face_sysInfo {
    /** 设备IP地址 */
    IP: string;
    /** 国家 */
    country: string;
    /** 省份 */
    province: string;
    /** 客户端平台，值域为：ios、android、pc */
    platform: 'ios' | 'android' | 'pc';
    /** 操作系统版本(即安卓版本) */
    system: string;
    /** 手机品牌 */
    brand: string;
    /** 手机型号 */
    model: string;
    /** 设备顶部状态栏高度(px) */
    statusBar: number;
    /** 页面标题栏高度(px) */
    navigationBar: number;
    /** page窗口宽度(px) */
    width: number;
    /** page窗口高度(px) */
    height: number;
    /** 设备屏幕总宽度(px) */
    screenWidth: number;
    /** 设备屏幕总高度(px) */
    screenHeight: number;
}
/** 结构示例 - dom元素节点信息对象 */
interface face_nodeInfo {
    /** 元素可视宽度px */
    width: number;
    /** 元素可视高度px */
    height: number;
    /** 元素距离屏幕左侧距离px */
    left: number;
    /** 元素距离屏幕右侧距离px */
    right: number;
    /** 元素距离屏幕顶部距离px */
    top: number;
    /** 元素距离屏幕底部距离px */
    bottom: number;
    /** 滚动框内元素距离顶部距离px */
    scrollTop: number;
    /** 滚动框内元素距离左侧距离px */
    scrollLeft: number;
}
/** 结构示例 - 返回的框架配置信息对象 */
interface face_configInfo {
    /** 主题颜色 */
    color?: {
        /** 主题色 */
        primary: string,
        /** 成功色 */
        success: string,
        /** 警告色 */
        warning: string,
        /** 错误色 */
        error: string,
        /** 辅助色 */
        info: string,
        /** 一级文字色 */
        font: string,
    },
    /** 网络请求通用IP地址头部 */
    http?: {
        /** 开发环境 */
        development: string,
        /** 生产环境 */
        production: string,
    },
    /** 网络请求通用配置 */
    network?: face_networkParam,
}

// ================================================================== 方法所用到的类型定义
/** 本框架配置信息处理方式
 * @value get 获取配置信息
 * @value set 设置配置信息
 * @value cover 覆盖某项配置信息
 */
type type_way_config = 'get' | 'set' | 'cover';
/** 本框架可操控配置项
 * @value color 主题颜色
 * @value http 网络请求通用IP地址头部
 * @value network 网络请求通用配置
 */
type type_item_config = 'color' | 'http' | 'network' | string;
/** 应用当前运行平台类型
 * @value NOT-UNI 运行于非UNI-APP平台
 * @value APP-PLUS 运行于UNI-APP的APP平台
 * @value APP-NVUE 运行于UNI-APP的NVUE原生平台
 * @value MP 运行于UNI-APP的小程序平台
 * @value H5 运行于UNI-APP的浏览器平台
 */
type type_platform_runtime = 'NOT-UNI' | 'APP-PLUS' | 'APP-NVUE' | 'MP' | 'H5';
/** 页面跳转方式
 * @value open 当页入栈跳转
 * @value replace 清除当前页再跳转
 * @value tab 会关闭其它非tab
 * @value relaunch 清除栈重新打开
 */
type type_way_pageJump = 'open' | 'replace' | 'tab' | 'relaunch';
/** 获取系统信息的回调 */
type function_callback_systemInfo = (obj_sys: face_sysInfo) => void;
/** 获取dom节点信息的回调 */
type function_callback_nodeInfo = (obj_node: face_nodeInfo) => void;


export {
    face_sysInfo,
    face_nodeInfo,
    face_configInfo,
    type_way_config,
    type_item_config,
    type_platform_runtime,
    type_way_pageJump,
    function_callback_systemInfo,
    function_callback_nodeInfo,
};